Position controlled elevator door motion

ABSTRACT

An elevator employing a microprocessor-based cab controller, for controlling, among other things, the opening and closing of the elevator car door, provides a pair of dictated door velocity profile signals and selects the one having the lesser value, to dictate motor current in accordance with the selected desired door motion profile. A first one of the profiles includes acceleration up to a desired maximum velocity, and a second one of the door motion profiles consists of a deceleration profile generated as a function of the distance from the door to a desired target position. An exemplary elevator system and cab controller, along with an exemplary door control program for the cab controller, establishing an environment in which the invention may suitably be practiced, and detailed program steps for effecting the present invention in such an environment are disclosed.

DESCRIPTION

1. Technical Field

This invention relates to elevators, and more particularly to position-controlled dictated elevator door velocity.

2. Background Art

A variety of means are known in the art for controlling the opening and closing of elevator doors. The most common form of elevator door control is analog in nature, providing door motor currents which are varied in accordance with resistances, some of which are varied or exchanged in accordance with cam-operated switches or which may be potentiometers, controlled as a function of door position. In any one elevator, or type of elevator, the resistance values and positions of cams or switches indicative of desired changes in door motor current are tailored in an empirical fashion in order to derive door motion which is acceptable. However, mechanical devices wear out easily and are in constant need of readjustment. Faulty door operation is difficult to diagnose in such systems, and frequently more difficult to correct. And desired door motion cannot be used as a guide for absolute determination of the nature or positioning of the components in order to effect the desired motion. In other words, design of analog door motion controllers in order to achieve desired results is not capable of being effected on the basis of theory alone.

Although the opening and closing of an elevator door may superficially appear to be a simple matter, conditions of actual door installations and requirements imposed by safety codes complicate door motion control. For instance, it is necessary to provide for reversal of door direction when the door is impeded as it is closing; similarly, pranksters or loose, misplaced objects may impede door motion when the door is opening. These actions result in an inability to predict door behavior with any accuracy, and to guarantee the prediction, each time that it is to be opened or closed. Therefore, the need exists for improvements in elevator door motion controllers.

DISCLOSURE OF INVENTION

Objects of the invention include improved control over elevator door motion.

According to the present invention, elevator door motion is controlled in a manner to accelerate the door until it reaches substantially a desired door velocity, which is the lesser of a function of the distance between the door and the desired final door position and a predetermined maximum door velocity, and moving said door at substantially the velocity indicated by the desired velocity after said desired velocity is reached.

According further to the invention, a desired dictated velocity signal is provided as the lesser of a first dictated door velocity signal indicative of an increase from a negligible door velocity to a predetermined maximum velocity at a predetermined acceleration and a second dictated velocity signal indicative of a function of the distance of the door from a predetermined target position.

Depending upon the use to which the invention is to be put, it may be used alone, or it may be used in conjunction with other door control modes. By constantly providing signals indicative of acceleration to a desired maximum velocity, and deceleration in accordance with the distance remaining for the door to go, and selecting the lesser velocity between the two, provides a convenient manner of ensuring that, regardless of the conditions under which door motion is commenced, rapid acceleration and maximum velocity will be used to the extent possible in the particular instance of moving the door, but the assurance of the door decelerating properly to a desired target position is also maintained. The invention thus provides assurance of minimum door motion time together with deceleration to a desired velocity at a target position, without regard to the position of the door as it commences its motion, such as following a stall or door reversal situation.

The present invention may be implemented utilizing apparatus and techniques which are known in the art in the light of the detailed teachings of the invention which are described hereinafter.

The foregoing and other objects, features and advantages of the present invention will become more apparent in the light of the following detailed description of an exemplary embodiment thereof, as illustrated in the accompanying drawings.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is a simplified, schematicized view of an elevator system in which the present invention may be practiced;

FIG. 2 is a simplified block diagram of a controller which may be utilized in the elevator system of FIG. 1;

FIG. 3 is a simplified, broken away schematicized illustration of an elevator door operator for use with the present invention;

FIG. 4 is an illustration of dictated acceleration and velocity, as well as position, of a position-controlled elevator door opening profile, on a common time base;

FIG. 5 is a logic flow diagram of the subroutines of a door control routine and door health and safety subroutines, which may be utilized in implementing the present invention and/or its environment;

FIG. 6 is a logic flowchart of an initiation subroutine;

FIG. 7 is a logic flowchart of a door position/velocity subroutine;

FIG. 8 is a logic flowchart of a door direction subroutine;

FIG. 9 is a logic flowchart of a compensation subroutine;

FIG. 10 is a logic flowchart of a velocity/stall subroutine;

FIG. 11 is a logic flowchart of a position-controlled profile select subroutine;

FIG. 12 is a logic flowchart of a select acceleration and velocity subroutine;

FIG. 13 is a logic flowchart of a generate position-controlled velocity (Vp) subroutine;

FIG. 14 is a logic flowchart of a generate time-controlled velocity (Vt) and error velocity (Verr) subroutine; and

FIGS. 15 and 16 are logic flowcharts of a dynamic compensation subroutine.

BEST MODE FOR CARRYING OUT THE INVENTION

A simplified description of a multi-car elevator system, of the type in which the present invention may be practiced, is illustrated in FIG. 1. Therein, a plurality of hoistways, HOISTWAY "A" 1 and HOISTWAY "F" 2 are illustrated, the remainder are not shown for simplicity. In each hoistway, an elevator car or cab 3, 4 is guided for vertical movement on rails (not shown). Each car is suspended on a rope 5, 6 which usually comprises a plurality of steel cables, that is driven either direction or held in a fixed position by a drive sheave/motor/brake assembly 7, 8, and guided by an idler or return sheave 9, 10 in the well of the hoistway. The rope 5, 6 normally also carries a counterweight 11, 12 which is typically equal to approximately the weight of the cab when it is carrying half of its permissable load.

Each cab 3, 4 is connected by a traveling cable 13, 14 to a corresponding car controller 15, 16 which is located in a machine room at the head of the hoistways. The car controllers 15, 16 provide operation and motion control to the cabs, as is known in the art. In the case of multi-car elevator systems, it has long been common to provide a group controller 17 which receives up and down hall calls registered on hall call buttons 18-20 on the floors of the buildings, allocates those calls to the various cars for response, and distributes cars among the floors of the building, in accordance with any one of several various modes of group operation. Modes of group operation may be controlled in part by a lobby panel 21 which is normally connected by suitable building wiring 22 to the group controller in multi-car elevator systems.

The car controllers 15, 16 also control certain hoistway functions which relate to the corresponding car, such as the lighting of up and down response lanterns 23, 24, there being one such set of lanterns 23 assigned to each car 3, and similar sets of lanterns 24 for each other car 4, designating the hoistway door where service in response to a hall call will be provided for the respective up and down directions.

The foregoing is a description of an elevator system in general, and, as far as the description goes thus far, is equally descriptive of elevator systems known to the prior art, and elevator systems incorporating the teachings of the present invention.

Although not required in the practice of the present invention, the elevator system in which the invention is utilized may derive the position of the car within the hoistway by means of a primary position transducer (PPT) 25, 26 which may comprise a quasi-absolute, incremental encoder and counting and directional interface circuitry of the type described in a commonly owned copending U.S. patent application of Marvin Masel et al., Ser. No. 927,242, filed on July 21, 1978, (a continuation of Ser. No. 641,798, filed Dec. 18, 1975), entitled HIGH RESOLUTION AND WIDE RANGE SHAFT POSITION TRANSDUCER SYSTEMS. Such transducer is driven by a suitable sprocket 27, 28 in response to a steel tape 29, 30 which is connected at both its ends to the cab and passes over an idler sprocket 31, 32 in the hoistway well. Similarly, although not required in an elevator system to practice the present invention, detailed positional information at each floor, for more door control and for verification of floor position information derived by the PPT 25, 26, may employ a secondary position transducer (SPT) 32, 33 of the type disclosed and claimed in a commonly owned copending U.S. application filed on Nov. 13, 1979 by Fairbrother, Ser. No. 093,475. Or, if desired, the elevator system in which the present invention is practiced may employ inner door zone and outer door zone hoistway switches of the type known in the art.

The foregoing description of FIG. 1 is intended to be very general in nature, and to encompass, although not shown, other system aspects such as shaftway safety switches and the like, which have not been shown herein for simplicity, since they are known in the art and not a part of the invention herein.

All of the functions of the cab itself are directed, or communicated with, by means of a cab controller 33, 34 in accordance with the present invention, and may provide serial, time-multiplied communications with the car controller as well as direct, hard-wired communications with the car controller by means of the traveling cables 13, 14. The cab controller, for instance, will monitor the car call buttons, door open and door close buttons, and other buttons and switches within the car; it will control the lighting of buttons to indicate car calls, and will provide control over the floor indicator inside the car which designates the approaching floor. The cab controller interfaces with load weighing transducers to provide weight information used in controlling the motion, operation, and door functions of the car. The load weighing may be in accordance with the invention described and claimed in commonly owned copending patent applications filed on Nov. 27, 1979 by Donofrio, Ser. No. 098,004 and by Games, Ser. No. 098,003. A most significant job of the cab controller 33, 34 is to control the opening and closing of the door, in accordance with demands therefore under conditions which are determined to be safe.

The makeup of microcomputer systems, such as may be used in the implementation of the car controllers 15, 16, a group controller 17, and the cab controllers 33, 34, can be selected readily available components or families thereof, in accordance with known technology as described in various commercial and technical publications. These include "An Introduction to Microcomputers, Volume II, Some Real Products" published in 1977 by Adam Osborne and Associates, Inc., Berkeley, California, U.S.A., and available from Sydex, Paris, France; Arrow International, Tokyo, Japan, L. A. Varah Ltd., Vancouver, Canada, and Taiwan Foreign Language Book Publishers Council, Taipei, Taiwan. And, "Digital Microcomputer Handbook", 1977-1978 Second Edition, published by Digital Equipment Corporation, Maynard, Massachusetts, U.S.A. And, Simpson, W. D., Luecke, G., Cannon, D. L., and Clemens, D. H., "9900 Family Systems Design and Data Book", 1978, published by Texas Instruments, Inc., Houston, Texas, U.S.A. (U.S. Library of Congress Catalog No. 78-058005). Similarly, the manner of structuring the software for operation of such computers may take a variety of known forms, employing known principles which are set forth in a variety of publications. One basic fundamental treatise is "The Art of Computer Programming", in seven volumes, by the Addison-Wesley Publishing Company, Inc., Reading, Massachusetts, and Menlo Park, California, U.S.A.; London, England; and Don Mills, Ontario, Canada (U.S. Library of Congress Catalog No. 67-26020). A more popular topical publication is "EDN Microprocessor Design Series" published in 1975 by Kahners Publishing Company (Electronic Division News), Boston, Massachusetts, U.S.A. And a useful work is Peatman, J. B., "Microcomputer-Based Design" published in 1977 by McGraw Hill Book Company (worldwide), U.S. Library of Congress Catalog No. 76-29345.

The software structures for implementing the present invention, and peripheral features which may be disclosed herein, may be organized in a wide variety of fashions. However, utilizing the Texas Instruments 9900 family, and suitable interface modules for working there with, an elevator control system of the type illustrated in FIG. 1, with separate controllers for the cabs, the cars, and the group, has been implemented utilizing real time interrupts, power on causing a highest priority interrupt which provides system initialization (above and beyond initiation which may be required in any given function of one of the controllers). And, it has employed an executive program which responds to real time interrupts to perform internal program functions and which responds to communication-initiated interrupts from other controllers in order to process serial communications with the other controllers, through the control register unit function of the processor. The various routines are called in timed, interleaved fashion, some routines being called more frequently than others, in dependence upon the criticality or need for updating the function performed thereby. Specifically, there is no function relating to elevatoring which is not disclosed herein that is not known and easily implemented by those skilled in the elevator art in the light of the teachings herein, nor is there any processor function not disclosed herein which is incapable of implementations using techniques known to those skilled in the processing arts, in the light of the teachings herein.

The invention herein is not concerned with the character of any digital processing equipment, nor is it concerned with the programming of such processor equipment; the invention is disclosed in terms of an implementation which combines the hardware of an elevator system with suitably-programmed processors to perform elevator functions, which have never before been performed. The invention is not related to performing with microprocessors that which may have in the past been performed with traditional relay/switch circuitry nor with hard wired digital modules; the invention concerns new elevator functions, and the disclosure herein is simply illustrative of the best mode contemplated for carrying out the invention, but the invention may also be carried out with other combinations of hardware and software, or by hardware alone, if desired in any given implementation thereof.

Referring now to FIG. 2, a cab controller 33 is illustrated simply, in a very general block form. The cab controller is based on a microcomputer 1 which may take any one of a number of well-known forms. For instance, it may be built up of selected integrated circuit chips offered by a variety of manufacturers in related series of integrated circuit chips, such as the Texas Instruments 9900 Family. Such a microcomputer 1 may typically include a microprocessor (a central control and arithmetic and logic unit) 2, such as a TMS 9900 with a TIM 9904 clock, random access memory 3, read only memory 4, an interrupt priority and/or decode circuit 5, and control circuits, such as address/operation decodes and the like. The microcomputer 1 is generally formed by assemblage of chips 2-6 on a board, with suitable plated or other wiring so as to provide adequate address, data, and control busses 7, which interconnect the chips 2-6 with a plurality of input/output (I/O) modules of a suitable variety 8-11. The nature of the I/O modules 8-11 depends on the functions which they are to control. It also depends, in each case, on the types of interfacing circuitry which may be utilized outboard therefrom, in controlling or monitoring the elevator apparatus to which the I/O is connected. For instance, the I/Os 8, 9 being connected to car control buttons and lamps 12a and to switches and indicators 12b may simply comprise buffered input and buffered output, multiplexer and demultiplexer, and voltage and/or power conversion and/or isolation so as to be able to sense car call button closure and to drive lamps with a suitable power, whether the power is supplied by the I/O or externally. Similarly, the I/O 9 may be required to cause a floor warning gong or an emergency buzzer to sound, to light indicators indicative of elevator operating mode, and to sense switches (such as an emergency power switch, or key switches for express operation and the like), and to operate and monitor door motor safety relays. On the other hand, the I/O 10 must either service an amplifier indicated as part of a door motor 14, or it must provide the amplification function. In such case, the I/O 10 may be specifically designed to be used as an I/O for a door motor 14; but if the door motor 14 includes its amplifier and monitoring circuitry, then a conventional data I/O 10 may be used. Similarly, an I/O 11 communicating with multi-functional circuitry 15, including door motor current feedback 16, a door position transducer 17, cab weight transducers 18, and a secondary position transducer 19 (which indicates the position of the car with respect to each floor landing) may be a general data I/O device if the functions are provided for in the circuitry 15, or it may be a specially-designed I/O device so as to perform necessary interfacing functions for the specific apparatus 16-19.

Communication between the cab controller 33 of FIG. 2 and a car controller (such as car controller 15 illustrated in FIG. 1) is by means of the well known traveling cable 13. However, because of the capability of the cab controller 33 and the car controller 15 to provide a serial data link between themselves, it is contemplated that serial, time division multiplexed communication, of the type which has been known in the art, will be used between the car and cab controllers. In such case, the serial communication between the cab controller 33 and the car controller 15 may be provided via the communication register unit function of the TMS-9900 microprocessor integrated circuit chip family, or equivalent. However, multiplexing to provide serial communications between the cab controller and the car controller could be provided in accordance with other teachings, known to the prior art, if desired.

The traveling cable also provides necessary power to the microcomputer 1 as well as to the door motor 14. For instance, ordinary 60 hz AC may be supplied to the microcomputer 1 so that its power supply can provide integrated circuit and transistor operating voltages to the various chips within the microcomputer 1, and separate DC, motor-operating power may be provided to the door motor 14. Other direct communications, such as between the secondary position transducer and the operation controller may be provided by hard-wiring in the traveling cable. Although not illustrated herein, additional wires for safety switches, power, and the like are also typically provided within the traveling cable. The desirability, however, of utilizing serial, time-division multiplex communications between the cab controller 33 and the car controller 15 is to reduce to two, the number of wires which may be necessary to handle as many as 200 discrete bits of information (such as car direction, request to open the door, car call registrations for particular floors, and the like). However, this forms no part of the present invention and is not described further herein.

The door opening and closing controls described herein are capable of being utilized with virtually any type of elevator door which is desired. In order to understand the complexities of door operation more fully, a typical door operator is illustrated in FIG. 3. Therein, a door 1 is shown, partially broken away at the bottom, in solid lines in a fully closed position (to the right in FIG. 3), in heavy dashed lines in a fully open position (to the left in FIG. 3). The door is connected to a link 2 by a pivot 3 which in turn is connected to an arm slider member 4 by a pivot 5. The member 4 has an arm 6 passing there through such that the member 4 must revolve about a pivot 7 of the arm 6 as the arm revolves, but the member 4 may slide longitudinally along the arm 6, in a well-known fashion. The arm 6 is formed integrally with or connected to an arcuate member 8 to which there is connected a chain 9 affixed thereto at points 10, 11. The chain 9 engages a sprocket 12 which is driven through reduction gears 13 by a door motor 14. To open the door, as depicted in FIG. 3, the motor turns in the clockwise direction, causing the arcuate member 8 and the arm 6 to similarly rotate in the clockwise direction about the pivot 7. The arm therefore pulls on the link 4 driving it to the left or open position, which in turn drives the link 2 and therefore the door 1 through the pivot 3. As the door moves toward the open position, the link 2 rotates clockwise about the pivot 3, and the link 4 rotates clockwise about the pivot 5. At the end of travel, in the fully-open position, the links 2, 4, and the arm 6 have the position shown broken away at the left in FIG. 3.

The necessary consequence of the conversion of rotary motion to linear motion, as depicted in FIG. 3, is that the distance (as in centimeters) of the door motion per unit angle of revolution (as in degrees) of the motor 14 varies in dependence upon the actual door position. For instance, it is evident from FIG. 3 that the maximum door motion per increment of motor angle will occur when the door is midway between the open and close position, and will be somewhat less near the fully-opened or fully-closed positions. This variation in linkage is accommodated, as described hereinafter with respect to FIGS. 7, 9, and 16, by means of a map or table of empirically determined values of incremental changes in door position for changes in motor position, as a function of door position.

When the arm 6 is vertical, its weight creates no force on the arm slider member; but when it is in any other position, the weight of the arm 6 affects door motion. During the first half (approximately) of travel, the arm aids motion (in either direction), but it impedes motion during the second half.

The actual door position may be monitored by a door position transducer 16 which is connected to the door motor shaft (or on the same shaft) or may be driven by the door motor in some other suitable fashion, such as a rack and pinion, to provide a pair of phase related (direction indicating) bits over lines 18 to interface circuitry 19, which includes means to determine from the relative time of occurrence of the bits on the lines 18 whether the door is closing or opening, and thus provide the door closing flag signal on a line 20, and to sense the number of bits per cycle as an indication of door velocity and transmitting an indication thereof as the TRANS bits on lines 21. This circuitry may take the form of so much of the circuits described in the aforementioned Masel et al U.S. Patent Application as is necessary to acquire direction and count information from a single incremental encoder with quadrature output. The door position is derived by accumulating these bits elsewhere, followed by conversion from angles of rotation to actual door position, all of which is described with respect to FIG. 7, hereinafter.

Although not intended to be an accurate description of the manner in which the motor may be driven, FIG. 3 illustrates that a door amplifier circuit 22 may be provided with a digital value of dictated current on a bus of lines 23 to generate the desired current for the motor 14. The current is applied to the motor 14 only if a pair of safety relays 24, 25 are suitably activated. And a sensing resistor or the like 26 may provide a motor amplifier feedback current value on a line 31 to the cab controller 33. More specifically, the safety relay 24 is actuated by the door control routines when no faults or failures are detected by the self health subroutines. Actuating the relay 24 connects a circuit 27 with the amplifier 22. On the other hand, if the relay 27 is disenergized (as shown), it will connect the circuit 27 to a grounded resistor 28 which provides dynamic braking to the door motor, in the fashion long known in the art. The relay 25 is controlled by the operation controller, in the car controller, and is activated when the car controller determines that operation of the door should be left in the hands of the cab controller. But if the car controller senses that operation of the motor should absolutely be inhibited, or vetoed, then the relay 25 will be disenergized (as shown) so as to prevent the amplifier 22 from providing current to the motor 14. And, when in the disenergized state, the motor 14 is connected by means of a direct circuit 29 to the machine room to facilitate control of the motor by maintenance personnel directly from the machine room, such as to effect an emergency evacuation from an elevator cab. A specific condition that would cause the operation controller to disenergize the relay 25 is loss of motive power, with passengers in the elevator, and an inability to force the door open through normal logical control.

A position-controlled velocity in accordance with the invention is illustrated in FIG. 4. Therein, a door velocity profile, for the opening direction, which is controlled principally by position, is shown. This profile is characterized by four different controlling regions. First, with the door fully closed, maximum acceleration is used to increase the velocity (Vt) from zero, by piecewise integration of the present velocity plus maximum acceleration (expressed as the desired maximum rate of change of velocity per cycle). This continues until the desired maximum velocity is reached, after which the velocity is clamped at the maximum velocity. The integration of velocity may continue, but the result is ignored due to the clamping at V MAX. Throughout all this time, a second velocity, referred to herein as Vp, is being calculated; this is a velocity that will smoothly bring the door to a desired bench velocity at a desired target position. It is simply some constant times the remaining distance. When this calculated velocity equals the time-controlled velocity (Vt), this takes over in controlling the profile. In a typical case, this will occur at V MAX, at some position away from the target position, where Vp=V MAX. But if there is a door reversal or a removed stall condition or the like, it is always possible that the door will not be able to achieve V MAX before it must begin decelerating in order to reach the desired bench velocity at the appropriate position (target). This is illustrated in FIG. 4 by the heavy dash lines identified with the legend "After Stall".

As is described more fully hereinafter, this door velocity profile may be used alone, or it may be used in conjunction with a door time-controlled velocity profile as described in a commonly owned copending U.S. patent application filed on even date herewith by Hmelovsky and Games, Ser. No. 107,804. And, with the indicated present position forced to the target position, a slow, bench velocity can be achieved for the entire door motion, if desired for safety reasons.

As illustrated in FIG. 5, a complete door control routine will consist of many subroutines to determine operating conditions, such as the position of the car with respect to a landing, commands to open and close the door, the health of various transducers, door reversal devices, and the like, to determine whether the door should be open, opening, closed, or closing, and if door motion is required, to determine whether it should be done at a slow final velocity, in accordance with a velocity profile that is position controlled, or if it should be accomplished with a principally time-controlled velocity profile. And, when the door is impeded or against its open or closed stops, the nature of stall current which should be dictated to the door motor. Various other features are performed in the enhancement of door motor operation, as is described more particularly hereinafter.

The door control routine may be entered from the executive program based upon real time interrupts decoded to the frequency that is required of the door control program, such as about every 16 milliseconds. The program is reached through an entry point 1, and the first subroutine therein 2 is referred to as autonomous mode, which provides for sensing a failure of communication between the cab controller and the car controller, inhibiting car motion near a landing, opening and closing the doors while turning the lights on and off and sounding a buzzer to frighten the passengers off the car, which is described more fully and claimed in a commonly owned copending U.S. patent application filed on even date herewith by Deric, Ser. No. 107,801. In a safety check subroutine 3, various factors which can control the safe response to door motion commands are taken into account (such as the car being close to a landing) to permit commanded door operation only when safe, and to force safe door conditions when necessary, which is described more fully and claimed in a commonly owned copending U.S. patent application filed on even date herewith by Doane, Deric and Roberts, Ser. No. 107,691. In an initiation subroutine 4, specific door initialization during a power on reset are made, and various conditions are established during normal operations at the start of each pass through the door control routine so as to control the functioning thereof.

In a door position/velocity subroutine 5, the door motion transducer increments are monitored and converted to linear door position and velocity factors, as well as providing a linkage ratio as a function of door position for use in door motor compensation and current calculations. In a door direction subroutine 6, commanded door direction and reversal requests are processed. A compensation subroutine 7 provides motor current compensation components to take into account the weight of the door actuator arm, friction, and the force of the hoistway door spirator or spring.

Determination of whether stall current should be dictated to the motor or a velocity profile should be dictated to the door motor is accommodated in a velocity/stall subroutine 8. Stall current is dictated to the door motor in a stall dictation subroutine 9, which is described more fully and claimed in a commonly owned U.S. patent application filed on even date herewith by Hmelovsky, Ser. No. 107,674 when stall is indicated by the subroutine 8, and motor current is outputted by a subroutine 9a. Otherwise, the factors for a position-controlled velocity profile may be selected, in a position-controlled profile select subroutine 10 according to the invention, or the factors for a time-controlled velocity profile may be selected in a time-controlled profile selection subroutine 11, as in the aforementioned application of Hmelovsky and Games. These are factors such as the maximum acceleration and velocity, final velocity, and conditions for changing from one acceleration or rate of acceleration to another as the door is moved.

Selection of suitable acceleration and velocity factors is performed in a subroutine 12, a position-controlled velocity is dictated in a subroutine 13 according to the invention, and time-controlled velocity as well as the variance between actual and dicated velocity are provided in a subroutine 14. Actual current is calculated and modified in accordance with specific conditions in the dynamic compensation subroutine 15 and outputted in the subroutine 9a, which completes the door control program whenever it involves dictated velocity profiles.

The door control program of FIG. 5 may return to the executive through a transfer point 16, and then a door health routine 17, including a safety relay subroutine 18, as in the aforementioned application of Doane, Deric and Roberts, monitors certain conditions indicative of the health of the door operation function, and sets and monitors safety relays that may absolutely inhibit the car motion or door motion in dependence upon the safety conditions of the subroutine 17 or in dependence upon conditions in the operation controller. Normally, the door health subroutine 17, 18 will be performed following the door control routine, in each case. Completion of all of the door control functions will cause return to the executive program through a transfer point 19.

Referring now to FIG. 6, the initiation subroutine is entered through an entry point 1. In test 2, any one of three different errors relating to the door amplifier, the transducer sum or excessive initiation time will cause the door control routine to be bypassed through a return point 3. The indications of these errors are all generated in a door health subroutine described with respect to FIG. 5, hereinbefore. But if this test fails, indicating that there is no error, a test 4 determines whether there is a partial initiation in progress. If not, a test 5 determines whether initiation is requested (which occurs during power up, as is described hereinbefore). If there is an initiation request, a step 6 establishes that a position-controlled velocity profile should be utilized, rather than a time-controlled velocity profile. Then, in a step 7, a command to close the doors is made, thus ensuring that the doors will remain closed if they are, or causing the direction to be toward closing if they are not fully closed at start-up. And, in step 8, the transducer sum (the accumulation of door position transducer bits) is set to zero, so that the position controlled velocity (step 6), in the closing direction (step 7) will be at the nearly-closed bench velocity (very slow, such as 4 cm/s, and therefore will be safe, regardless of original door position and/or transducer setting. With these tasks complete, that fact is indicated by setting a final initialization flag in step 9.

In the next pass through the subroutine of FIG. 6, test 4 will determine that the final initiation flag has been set, and will cause step 10 to determine if the door is fully closed, the command is to close the door, and the current dictation to the motor has been a stall dictation for the last 0.8 of a second. The door fully closed indication tested in step 10 is provided by a switch which can be activated to indicate door closure only within about a centimeter of full door closure. If these criteria have not been met, then this indicates that the door is not fully closed, and initiation cannot be deemed to be complete; therefore, in the next subsequent cycle, this same test 10 will be made once again, and so forth. Eventually, the door will be closed with a closure command and stall force will be dictated to the motor for 0.8 of a second. Thereafter, test 10 will be positive and this will be an indication of the end of door control initiation so that the initiation request flag is reset in step 11, and having finalized initiation, the final initiation flag is reset in step 12. On the next pass through the door control routine, step 2 will be negative, step 4 will be negative, and step 5 will be negative, reaching a normal (noninitiating) portion of the subroutine, which commences with test 13. If this test is affirmative, it indicates that the door is commanded to be open (and thus will stay open), it is fully open, and there has been stall current dictated to the door (maintaining the door open) for at least 0.5 seconds. Under this condition, it is known that the count in the transducer should be a maximum count. This is the count which is accumulated in a counter related to the door transducer as described with respect to FIG. 3 hereinbefore. Therefore, an affirmative result from test 13 will set a transducer full flag in step 14, which is utilized in the door health subroutine described hereinbefore to determine if the maximum transducer count is reasonable. But if step 13 determines that the door is not fully open, test 15 will determine if the doors have been fully closed, without any command to open, and with dictated stall current for the past 0.5 seconds. If so, this guarantees that the door is fully closed and therefore at a zero position, which fact is registered by setting a position zero flag in step 16. But if tests 13 and 15 determine that the door is neither fully open nor fully closed, this fact is registered by step 17 resetting the transducer full flag (which will naturally occur after the door has been fully opened but begin to close). In each noninitiating door control routine in which tests 13 or 15 are affirmative, step 18 resets the position-controlled velocity flag because the door may have been driven to the fully open or closed position by a position-controlled velocity profile as a result of reversal or blockage; but, now that the full open or closed position has been reached, the preferred time control profile should be used for the next door excursion. Step 19 ensures that the value of acceleration (an integrated value) to be used in dictating the door velocity begins at zero, each time a new door motion profile is generated after the door is fully open or closed. Step 20 resets a high force flag (which is explained with respect to FIG. 16, hereinafter), because high force could have caused the door to become fully open or closed, but the subsequent motion of the door should be achieved with a normal profile, if possible. And step 21 resets a profile direction flag, which monitors direction change during a door velocity profile, as described with respect to FIG. 8, hereinafter. In each pass through the initiation subroutine, the door control program advances to the door position/velocity subroutine through a transfer point 22.

The door position/velocity subroutine of FIG. 7 is entered through a transfer point 1, and a test 2 determines if the door has been fully closed by testing the position zero flag (set in step 16, FIG. 6); if so, the flag is reset in step 3 (thus ensuring that this is only gone through one time) and the transducer sum is set to zero in step 4. This is the manner of initializing the door position to zero when it is closed. On subsequent normal passes after the door is commanded to open, test 15 (FIG. 6) will fail so step 16 (FIG. 6 will not set the position zero flag, so test 2 will fail. In such cases, test 5 determines if the door motor direction is such as to provide closing of the door, or not. This is determined by testing a door closing flag, which is generated as described hereinbefore (FIG. 3) with respect to the phase-oriented bits of the door transducer. If the door is closing, the transducer summation (TRANS SUM) is reduced in step 6 by the increment in transducer count since the last cycle (TRANS), but if test 5 is negative, indicating that the door is opening, the transducer sum is increased in step 7 by the increment from the transducer. And, in such case, the transducer sum is tested to see if it is excessive (such as in excess of 71,000 increments) in test 8, and if it is, a transducer sum excess flag is set in step 9. had the door been closing, test 10 would determine whether a negative sum had been reached, and if so, step 4 would restore it to zero. In the case of failure of step 8 or step 10, no clamping or flagging occurs. In any case, the door position/velocity subroutine continues.

In FIG. 7, the accumulated transducer sum (which increases from zero on opening, and decreases from a near-maximum amunt to zero on closing) is converted to a door position, given in a lineal measurement such as fractions of a meter, by first finding, in step 11, the point where the particular current transducer sum falls equal to or between the incremental arguments of a table of door positions as a function of discrete transducer sums. Then, in step 12, a slope (Mp) of position as a function of transducer sum is determined by subtracting the position (N) corresponding to the lower argument determined in step 11 from the position (N+1) corresponding to the higher argument determined in step 11. In step 13, the actual position is determined by taking the lower position and adding to it the slope of the table times the difference between the actual transducer sum and the lower argument of the table determined in step 11. In other words, steps 11 through 13 comprise an operation well known as a linear interpretation, discrete table lookup, where the slope of interpolation is determined by the discrete values of the table, rather than being already provided. This requires additional calculation, but saves considerable storage space in the table, particularly where the table may have thousands of arguments as in the present case. In addition, the slope (Mp) determined in step 3 is used in several other calculations described with respect to FIGS. 9 and 16 to accommodate the fact that the ratio of motor motion to door motion changes as the elbow-linkage flexes (that is, pivots), to a greater or, lessor extent, depending on door position, such door position being indicated by the slope (the rate of change of door position for a given increment of angular position of the motor).

With the positional slope determined in step 12, step 14 can compute velocity by knowing the transducer increment, and the relative change in position per transducer increment (the slope Mp), and an empirically determined positional constant Kp which relates the incremental transducer bits, the door linkage as indicated by the slope Mp and the granularity (or binary bit value) of these factors, to determine a door velocity. Then, test 15 determines whether the door motor direction indicates that the door is closing, which means that the position and velocity are therefore decreasing, and if so, provides a minus sign by 2's-complementing the door velocity value in step 15. If not, the sign is left positive following test 15. Then, the door direction subroutine is reached by transfer point 17 in FIG. 7 which corresponds to entry point 1 in FIG. 8.

Referring now to FIG. 8, the door direction subroutine begins with a test 2 to determine if an initiation request is outstanding. If it is, the subroutine is bypassed to the profile direction change detection portion of the subroutine. But after initiation is completed, each normal running of the door control program will pass through test 2 to a test 3 which determines whether the operation controller and/or the safety check subroutine have indicated that nudge is to occur (which is low force current dictation and no door reversals). If nudge is indicated by step 3, the subroutine of FIG. 8 jumps ahead to initially ensure that door reversal operations will not occur (by steps 24-26 described hereinafter), or if a door reversal is already in progress when safety nudge is indicated (such as because the car is slipping away from the floor) the affirmative result of test 3 will cause steps 24-26 to close the door without waiting for the logic and door motion to complete a door reversal, thereby closing the doors rapidly enough to avoid passenger injury as a consequence of car motion or as a result of the car being away from the inner door zone.

If test 3 is negative, then a step 4 will register a reverse request if reverse request 1 is present without an inhibit therefor, of if reverse request 2 is present without an inhibit therefore, provided in each case that reversals have not been prevented by the operation controller or the safety checks subroutine, as indicated by the not safety nudge test 2. Reverse request 1 might be set in response to closing the door safety shoe switches; reverse request 2 might be set in response to breaking a door safety light beam; or one of them may respond to a proximity sensor.

In test 5, a reverse door command flag is tested; since this is set by portions of the subroutine which are reached by a negative result, it must always yield a negative result in a first pass, whether door reversal is requested or not. This, therefore, always leads to a test 6 which determines if the commanded door direction is open. If opening, no reversal is needed. A negative result of test 6 indicates that the door is not opening and reaches test 7, which determines if the car is in the inner door zone, the door is not fully closed, the door direction commanded is closing, but the door open button inside the cab has been pressed. This is a late request for door opening by a passenger, and is processed in step 7 since there is insufficient time to pass the request to the operation controller, have it processed and returned in the form of a door open demand, before the permissible conditions for opening the door could disappear. This feature allows very fast and dynamic response to door open request from within the cab. If the result of test 7 is affirmative, it is treated as a reversal request (in the same fashion as a reversal request generated in step 4, above). If it is negative, a step 8 will test for a regular reversal request, and an affirmative result from either of them will lead to step 9. Step 9 sets the reverse door command bit which was previously tested in test 5, step 10 registers the actual door position at the current moment as being the position where reversal is requested: this is used at a later point in the door direction subroutine of FIG. 8 (described hereinafter) to determine whether the reversal has occurred within a desired distance. And a reverse opening flag, indicative of the opening phase of a door reversal, is set into its negative state in step 11. Step 11 completes the registration of a request for door reversal as such. Door reversal necessarily happens only if the door is closing when it is desired to have the door open. The first step in that process therefor is to stop the closing door from travel in the negative direction before allowing the door to begin travel in the positive direction. Therefore, a command to actually open the door cannot be issued until the door is either stopped, (no longer closing) or very nearly so. The door becomes stopped from motor current dictated in response to the reverse door command, as described with respect to FIG. 15, hereinafter. In test 12, this condition is initially monitored. If the velocity is more positive than 1.3 centimeters per second in a negative direction, that means it is very close to zero or is actually opening (which can't occur in this circumstance), so that an open door command bit can be set in step 13. In the normal case, however, the pass through step 12 is likely to be negative so that step 14 will ensure that the open door command bit is reset.

On a second pass through the door direction subroutine of FIG. 8, when there is a need to reverse the door, test 5 will be affirmative since the reverse door command flag was previously set in step 9. This will lead to test 15 which must be negative on the first pass through it since the reverse opening bit being tested therein can be set only in a portion of the subroutine reached by a negative response to test 15. This therefore reaches test 16 in which the door velocity is again interrogated, in the same fashion as in test 12, to determine if the door is stopped, or very nearly stopped. If the door has not yet stopped (which is likely to be the case in a first pass through step 16), then test 17 is reached to determine whether the door has taken a distance greater than about five centimeters to stop. This is computed by comparing the reverse position, which was established in step 10, less five centimeters, with the present door position. If the door has gone more than five centimeters as indicated in step 17, and step 16 indicates the door is not yet virtually stopped, then a reverse distance error flag is set in step 18. In the present embodiment, the reverse distance error is not used to govern further control of the door operation, but simply establishes, for maintenance personnel, that the door is taking too long to come to a stop during a reversal; this could lead to analysis of faulty reverse current dictations and the like, and help to ensure more efficient elevator operation. In most passes through step 17, however, the five centimeter distance will not have been exceeded.

During normal door reversal, subsequent passes through the door direction subroutine of FIG. 8 will pass through tests 2, 5 and 15 to reach test 16, when ultimately the door will become essentially stopped so that test 16 will yield an affirmative result. This begins the second phase of a door reversal which is to commence the opening. When test 16 is affirmative, step 19 sets a reverse opening flag and step 20 issues the actual working command to open the door. Note, in retrospect, that the open command is the actual command which causes the door to in fact be opened. The open door command is generated in normal, nonreversal situations in response to the safety door open demand, as described with respect to this subroutine, below.

In subsequent passes through the door direction subroutine in FIG. 8, test 2 and test 5 lead to test 15. Since the reverse opening flag has been set in step 19, test 15 will thereafter be affirmative, leading to test 21. Test 21 assumes that the embodiment of the invention may have an optional feature which allows limited door reversals, so that reversal only continues while the reversal request (respectively corresponding to reverse request 1 and reverse request 2 in step 4) are continued to be made by the reversing device. If that is the case, then test 21 will lead to a test 22 to determine if the reverse request is still outstanding. If it is, then the reversal process is simply continued by passing throughthe subroutine. But once that reverse request has ended, then the reversal is deemed to be complete as is described more fully hereinafter.

If there is no limited reversal feature so that any reverse request must result in a full door reversal, then test 21 is negative and leads to test 23. Test 23 determines whether the door has been fully open for one second, or not. If it has, then the reversal process is complete. Either the negative of test 22 or the affirmative of test 23, indicating completion of the reversal process, will lead to step 24 where the reverse door command is reset, the open door command reverts to control by the safety checks subroutine (and/or the operation controller) in step 25, and the reverse acceleration flag (which is set in the select acceleration and velocity subroutine described with respect to FIG. 12 hereinafter, is reset in step 26. Exiting from step 26 completes a door reversal.

Assuming no reverse request or late door open buttons occur, or whenever the door is opening, subsequent passes through the door control routine will cause the door directions subroutine of FIG. 8 to pass through test 2 negatively, step 4 with a reverse request set to zero, step 5 negatively, to step 6. In step 6, in any case where the door is opening, there is no need to create a reversal, so the non-reversing situation is maintained by passing through the end-of-reversal steps, 24-26, to ensure that there is no reverse door command, the door open command is under safety and/or operational control, and there is no reverse acceleration flag. On the other hand, when the door is not opening, and there is no reversal request, test 6 will be negative, test 7 will be negative, and test 8 will benegative, so that the same three steps 24-26 are performed to ensure non-reversing situation.

In the normal case, the door is either commanded to open or it is not commanded to open. When it is commanded to open in the normal case, it is because the operation control has sent down a door open demand. The safety checks subroutine, as described hereinbefore with respect to FIG. 8, is utilized in the normal case to cause the safety door open demand to follow the door open demand, and in step 25 of the door direction subroutine of FIG. 8, causes the open door command itself to follow the safety door open demand. Thus, the open door command is caused to follow the door open demand of the operation controller when the safety check subroutine allows it to do so. If the open door command is set, an opening direction is indicated; if it is not set, a closing direction is indicated. In practice, the open door command is set to zero to cause the doors to close, when they are open and it now becomes time to close; and it is set to zero all the time that the doors are closed and the car is in motion or is parked, in the well known fashion common to elevators of the prior art.

At the bottom of FIG. 8, a portion of the door direction subroutine tests for the case where door motion has been commanded in one direction, and before that command is completed, a command is received to alter the direction of the door. An example of when this could occur is during independent service. When the independent service key is on, the door is manually opened by depressing the door open button, and is closed if the button is released before the door is fully opened. Thus, if an operator presses the door open button in the cab, and releases it after the opening operation commences, the absence of the door open button being pressed will be communicated to the operation controller, which will convert the operation controller's door open demand to a not door open demand, ultimately causing the not open door command to be generated in FIG. 8 as described hereinbefore. In such a case, there is no knowledge of where the door is when this occurs, so door motion in the new direction must be controlled at a sage velocity in every case. In the bottom of FIG. 8, a test 27 determines whether the door command is the same in this pass through FIG. 9 as it was in a previous pass through FIG. 8. If it is, the door control program transfers to the compensation subroutine of FIG. 9 through a transfer point 28. But if the commanded door direction has changed, step 27 will be negative and a step 29 will test the profile direction flag, which is always set to zero during normal initiation of FIG. 6 when the door is either fully open or fully closed, and therefore known to be before the start of a profile. The start of a profile resultsfrom the door being fully open and a change from open door command to not open door command (close), or from being fully closed and achange from not open door command (close) to open door command. Once a profile is started, step 21 of FIG. 6 will no longer be reached because the door is neither fully open nor fully closed. Whichever direction a door profile is being commanded, once the profile has begun, test 27 (FIG. 8) will cause test 29 to be reached and to fail, thus setting the profile direction flag in step 30. And after setting the profile direction flag, a step 31 will cause the last door command to equal the present open door command (regardless of whether it is a one, indicating the opening direction or a zero indicating the closing direction). The setting of the flag and equalizing the last command to the current one (steps 30 and 31), establishes the direction of door motion for subsequent determination of direction change before completing a traverse to the opposite stops (fully open or closed). In subsequent passes through the door direction subroutine of FIG. 8, if the door direction is changed, step 29 will be affirmative and steps 32 and 33 will call for position controlled velocity and will reestablish acceleration at zero to permit starting a new piecewise integration thereof, or set it to a new value). This will cause a position-controlled velocity profile, of the invention, as indicated in FIG. 4, to be performed in the new door direction. This profile need not be limited to bench velocity as is the case during initiation, since the position transducer data can be relied upon to cause the profile to ease gently into the fully open or fully closed target position as a function of the velocity being dictated by the distance remaining to go, which is described more fully hereinafter.

The compensation subroutine of FIG. 9 is described more fully and claimed in a commonly owned copending U.S. patent application filed on even date herewith by Hmelovsky, Ser. No. 107,700, and is reached from transfer point 28 in FIG. 8 which corresponds to transfer point 1 in FIG. 9. The compensation subroutine begins with a test 2 to determine door direction to generate a friction compensation factor in step 3 or 4, respectively, which will provide additional force in the direction of door travel (that is positive for the door opening and negative for the door closing). The frictional force can be determined empirically simply by causing door motion, when it is in a loose condition, with a suitable force scale, or by generating trial compensations to determine those that eliminate dynamic friction factors from the door behavior which results from dictated currents. The frictional force is multiplied by the same constant D as is used in any case herein to relate force to current, D being equal to a linkage constant (K1) that relates the door motor to nominal door position, the slope (Mp) of door motor angular position to door position relationship as described with respect to the door position/velocity subroutine of FIG. 7 hereinbefore, divided by the product of the torque constant (Kt) and efficiency (E) of the door motor.

In the compensation subroutine of FIG. 9, compensation is also provided for the hoistway door closing spirator or spring. Whether the door is opening or closing, corresponding tests 5, 6 determine if the door position is greater than an empirically determined spring position: that is, if the door is open sufficiently so as to be engaged with the hoistway doors and to be flexing the spirator (that tends to keep the hoistway doors closed when the cab doors are not engaging them). However, this position may be different when the door is opening than it is when the door is closing, so separate opening spring position and closing spring position tests must be done in tests 5 and 6. In either case, however, compensation is generated in step 7 which provides a spring force times the constant D as described hereinbefore, which in the case of the door opening is added to the previous compensation since the spring also works against door opening, but in the case of the door closing is subtracted from the compensation previously generated (which is negative) so this is achieved by similarly adding this factor to the negative compensation in step 7. The compensation factor is in terms of current, and is added into the dictated current at the end of the dynamic compensation subroutine, as is described with respect to FIG. 16 hereinafter.

The subroutine of FIG. 9 then provides compensation for the weight of the door actuating arm (7, FIG. 3, hereinbefore), since the weight of the arm, when it is in a high angular position, such as in the fully-opened or fully-closed position, may provide sufficient force to the door to be equivalent to on the order of 31/2 kilograms; yet when the door is half open, so that the arm is essentially vertical, the force imposed on the door by the weight of the arm is zero. This, of course, varies from door to door and is a more pronounced problem for large doors having large arms then it is for doors with small runs having shorter arms. And, it can be eliminated where the door actuating mechanism does not provide any such force; similarly, if such a force is constant, it may be accommodated along with the frictional force, as described hereinbefore.

In the subroutine of FIG. 9, compensation for the weight of the arm is calculated in a step 8 as a function of a nominal arm force which is empirically determined to be applied to the door, times the factor D described hereinbefore, times a function of position, which is rendered correct for either a fully-opened or fully-closed position, or any point in between, by taking half the maximum door position, subtracting door position from it, and dividing by half the maximum door position. Thus, in a one meter wide, double door, in which one of the doors is moved by the door operator, and the other door is moved by mechanical linkage connected to the first door, each door has a fully opened, maximum door position which is one half meter from the fully-closed position. In such a case, the positional factor of step 22 for a fully-closed door would be one half meter divided by two (which is one quarter of a meter), minus zero (fully closed), divided one half meter divided by two (which is one quarter of a meter), yielding a total positional factor of plus one. And when the door is fully opened, the calculation would amount to a quarter of a meter minus a half a meter divided by a quarter of a meter which yields a positional factor of minus one. Thus, the compensation is automatically corrected for, the sign depending upon which side of vertical the door arm is in, as is illustrated in FIG. 3. And, this arm compensation factor is the same regardless of direction of door motion, being dependent only upon door position relative to the half-open position. Although the actual effect on the door is slightly sinusoidal with respect to door position, it is sufficiently close to linear so that this compensation reduces the effect of the door arm weight to a trivial amount. In a step 9, the arm compensation is added to the compensation provided in steps 3, 4, and/or 7. And the door control program then proceeds to the velocity/stall subroutine through transfer point 10.

The velocity/stall subroutine illustrated in FIG. 10 determines whether the door control should dictate a stall current to the door, such as when the door is being nudged against a blockage, or when it is fully opened or fully closed against stops (to maintain the door in that position with a suitable force, even though no door motion is possible). That is to say, current will be supplied to the motor so that the motor attempts to drive the door further against the blockage, but the motor does not turn at all, and the door does not move, except when the direction of stall current is reversed. Or, in the alternative, the velocity/stall subroutine of FIG. 10 may determine that a time controlled door opening or door closing can be performed, which can only occur when the doors are initially fully closed or fully open, respectively. Or, the subroutine may determine that the position-controlled velocity profile of the invention should be employed due to the fact that the door position is not known, or other conditions prevent the assumption that a full, fast door opening or closing should occur, as is described more fully below.

The velocity/stall subroutine is reached through an entry point 1 in FIG. 10, which corresponds to the transfer point 10 at the bottom of FIG. 9, and begins with a test 2 to determine simply which door direction is involved. If test 2 is affirmative, the door is open, to be opened or opening; but if test 2 is negative, the door is closed, to be closed or closing. Assuming the door direction is open, test 3 will determine if the door is traveling faster than about 1.3 centimeter per second in the positive direction: if not, the door is nearly stopped and therefore is nearly open; but if test 3 is affirmative, the door is still within its higher speed range of its opening profile. This is indicated by the legends on either side of test 3 in FIG. 10. If test 3 is negative, meaning the door is very nearly fully open, then test 4 will determine whether the door is fully open or not. If so, then stall dictation of motor current is indicated, and the door control routine will advance through a transfer point 5 to the stall dictation subroutine described.

In a similar fashion, if test 2 indicates the absence of the open door command, then the door direction is close, and test 6 will determine if the door speed is more negative than about -1.3 centimeters per second and if so, an affirmative test result indicates that the door is closing; but if not, this means the negative velocity is very slight so that the doors are either closed or nearly so. Then, a test 7 determines if the doors are indicated as fully closed by the door fully closed switch. If so, stall dictation is effected through the transfer point 5.

If either test 4 or 7 is negative, when the doors are nearly closed or open, then a test 8 will determine if the last cycle was a stall cycle (that is, was the current dictation to the motor in the previous pass through the door control routine dictated for stall or not). If it was, this indicates that the door is being finally opened, or finally closed, with stall dictation, and this will be continued until the full open or full closed condition is reached. But if not, then a test 9 is performed to see if, with the door nearly open or nearly closed, stall has been indicated for about the past 0.3 seconds. If so, then stall can be initiated. This means that as the door approaches the stops, the speed may be jerky, and may dip below the 1.3 cm/s level, without shifting back and forth between stall and velocity modes. But when the speed is low once, test 9 will transfer to stall and test 8 will keep it there. If the doors are nearly open or nearly closed and still in a velocity profile, and 0.3 second has not yet passed in this condition, then test 10 will determine whether an open or closed direction has been commanded for the door, and the case is exactly the same as if the doors are moving rapidly. Thus, in any case where the door is closing, as determined by tests 2 and 6 or by test 10, a test 11 will determine whether nudge has been ordered by the safety check subroutine, and if so, a position-controlled velocity profile is ordered in step 12. If not, a test 13 determines whether or not door reversal is commanded, and if it is, a position-controlled velocity profile is commanded by step 12. If opening, or closing without nudge or reversal, a test 14 interrogates the high force flag; if excessive motor current has been dictated, indicating blockage, a position-controlled velocity profile will be commanded by step 12.

These are cases where a normal, principally time-controlled velocity profile for door motion cannot be used. Since a nudge can overcome blockage midway of door opening, a reversal is always partway open, and high force indicates other than a freely-acceleratable door, the safe, position-controlled velocity profile of the invention is used.

In cases other than stall, test 15 determines whether a position-controlled velocity profile has been commanded (such as in step 12), and if so, selection of profile variables is made by transfer to the position-controlled profile selection subroutine (FIG. 11) through transfer point 16; if not, transfer point 17 directs the door control program to the time controlled profile selection subroutine.

As described hereinbefore with respect to FIG. 10, if stall dictation is not reached through a transfer point 5, then position-controlled velocity profile selection or time-controlled velocity profile selection may be reached instead. If position-controlled velocity profile selection is reached through transfer point 16, it will lead to the entry point 1 on FIG. 11. The first step of this subroutine is to test whether the door is opening or closing in test 2 of FIG. 11. In either case, the next tests 3, 4 determine whether or not a heavy hoistway door is indicated for this particular floor. This may be achieved by ANDing a heavy door floor map with a committed floor pointer (from the operation control). And then, in the selected one of the steps 5-8 a register for maximum acceleration (A MAX) is loaded with a predetermined value of acceleration for position-controlled velocity for the case of closing with a light door, closing with a heavy door, opening with a light door or opening with a heavy door, respectively. And in related steps 9-12 a maximum velocity (V MAX) register is set with predetermined value for velocity for a position-controlled profile for the case of the door closing with a light door, closing with a heavy door, opening with a light door, or opening with a heavy door, respectively. Then, in step 13, the slope of the acceleration vs. time profile of the door motion, as described with respect to FIG. 4 hereinbefore and FIG. 12 hereinafter, is set to equal the value of A MAX which has just been determined in step 5 or 9. Then, the door control program will advance into the select acceleration and velocity subroutine described hereinafter with respect to FIG. 12 through transfer point 14.

When the position-controlled profile selection subroutine of FIG. 11, is complete, the door control program continues through the select acceleration and velocity subroutine of FIG. 12 through entry point 1 therein. The acceleration in the case of a position-controlled velocity profile is set equal to A MAX (FIG. 11), so the acceleration becomes A MAX during the first cycle. Thereafter, A MAX is continuously added to itself, but the actual acceleration is limited to A MAX, as is described hereinafter with respect to FIG. 12. Specifically, the incremental addition to acceleration (stepwise integration) is performed in step 2, regardless of what value of acceleration is achieved and regardless of whether a time or position-controlled velocity profile is being generated. Then, in test 3, A MAX is tested to see if it is negative. If it is, this means that either deceleration is being performed during door opening, or acceleration is being performed in door closing. In such case, a step 4 sets a buffer value of A MAX which is equal to negative A MAX, and a step 5 reverses the sign of the actual acceleration that has been achieved. This provides a maximum acceleration factor and the acceleration itself in positive or absolute value format for some comparisons to be made. If step 3 is negative, the maximum buffer is set equal to A MAX without inversion to permit using it for limiting the acceleration to the maximum value. Specifically, a test 7 determines if the acceleration exceeds the maximum buffer, and if it does, it causes step 8 to limit the acceleration to that in the maximum buffer. And then, a test 9 determines if the acceleration is less than zero (in this sense it is an absolute magnitude, and does not matter if it is acceleration or deceleration in a door closing or a door opening profile, respectively). If the acceleration has decelerated below zero, it is limited to zero in step 10. And then, a test 11 determines whether A MAX is negative (a corollary to step 3) and if so, reverses the sign of the acceleration to resort to its original negative value in step 12. Taken altogether, test 3 through step 13 simply comprise testing the absolute value of acceleration against A MAX and zero and limiting the acceleration to values between zero and A MAX.

The subroutine of FIG. 12 then continues with a test 13 to determine if initiation has been requested. If it has, V MAX is set to about 4.5 centimeters per second in step 14, and the acceleration is set to about 40 centimeters per second per second in step 15. Since both of these are negative, this will attempt to close the door with a limited acceleration and velocity; and since the initiation automatically causes a position-controlled profile, this low acceleration and velocity will be reduced when it exceeds the position dictated velocity to the target (a low bench velocity), as described with respect to step 23 of FIG. 12 hereinafter, so that the door will approach fully closed in a controlled slow fashion. On the other hand, if initiation has not been requested, test 13 will be negative so that test 16 can determine whether or not the high force flag is set. If it is, then test 17 will cause the maximum velocity and the acceleration to be limited in steps 18 and 19 or in steps 20 and 21, in dependence upon whether a heavy door is involved or not, respectively. But if the high force flag is not set, test 16 will be negative and test 22 will determine the door direction. If the door is closing, test 22 is negative so that test 23 can determine whether or not a safety nudge is ordered; if it is, then the acceleration and velocity are limited by steps 18-21 as described hereinbefore. If safety nudge has not been ordered, then a test 24 will determine if door reversal is permitted and required. If it is, then a reverse acceleration flag is tested in test 25, as is described more fully and claimed in a commonly owned copending U.S. patent application filed on even date herewith by Schoenmann and Deric, Ser. No. 107,692. The flag is set only when test 25 fails so that this is a one-pass-only type of flag. The first time through test 25, it must fail so that a reverse acceleration value is calculated as the square of door velocity divided by 7.5 centimeters, which is twice the desired stopping distance during a door reversal. This relationship may be understood from the fact that velocity equals acceleration times time, and the stopping distance equals one half the acceleration times the square of time. So twice the desired stopping distance is acceleration times the square of time; but the time is equal to the velocity divided by the acceleration and this yields a net result that the acceleration equals the square of the velocity over twice the desired distance. This is set only one time because door velocity will of course change but the acceleration required for the stopping distance should remain the same in the several cycles it may take in order to stop the door during a door reversal. Therefore, step 27 sets the reverse acceleration flag so that the reverse acceleration value will not be altered. The reverse acceleration flag remains set until it is reset upon the completion of door reverse stopping, and the commencement of the opening phase of the door reversal, as is described hereinbefore with respect to the door direction subroutine in FIG. 8.

The factors of steps 14, 15, 18-21, and 26 may vary from one installation to another. The select acceleration and velocity subroutine of FIG. 12 is ended by reaching a transfer point 28 which causes the door control program to continue with the generation of the position controlled velocity by means of the generate Vp subroutine, which is entered in FIG. 13 through an entry point 1. If a position-controlled velocity profile has not been ordered, as indicated in a test 2, then this subroutine is exited through a transfer point 3. But if position-controlled velocity has been ordered, then a test 4 determines the door direction and generates the position-controlled velocity profile (more specifically, the deceleration portion of the velocity curve, as illustrated in FIG. 4) as a constant times the remaining distance. When the door is opening, the remaining distance is the full open position minus the door position minus the target (which is an increment of distance from full open to the desired point of intersection with bench velocity). The same is true when a door is closing, except the fully closed position is zero and therefore can be eliminated from the calculation. Thus, velocity as a constant function of the remaining distance to be traveled is calculated in either steps 5 or 6 depending on whether the door is opening or closing, respectively. As an alternative, velocity (Vp) may be dictated as the square root or some other function of remaining distance. When the door is closing, a negative velocity is dictated and when the door is opening, a positive velocity is dictated. Then, in tests 7 and 8 the velocity is tested to see if it is more positive (if opening) or more negative (if closing) then some final bench velocity, and if so, the velocity is appropriately limited in steps 9 or 10, respectively. In a general case, the "target" identifies a position where the bench velocity will provide a smooth transition from the dictated velocity(nearly fully opened or closed).

Whether or not a position controlled velocity is dictated, the door control program leaves the generate Vp subroutine of FIG. 13 through transfer point 3 and enters a generate Vt & Verr subroutine of FIG. 14 through entry point 1 therein. On the first pass of a velocity profile (that is, other than stall), test 2 determines if the last cycle was stall and if so, resets the last cycle stall flag in step 3 and also causes the time-controlled velocity, Vt, to be equal to the present door velocity in step 4. The reason for tis is that if the last cycle was stall, the velocity profile is reached only by achieving a minimum door velocity with a stall current, as described with respect to FIG. 10 hereinbefore. This is taken into account so as not to have any step function increment in the door velocity as a function of calculating a velocity profile following a stall. Then, a test 5 determines if the door is opening, and if not, a test 6 determines if a permissible reverse door command is outstanding. If it is, then the time-controlled velocity has the reverse acceleration added to it (in piecewise integration) in step 7 and the acceleration integration process is reset in step 8 so as to be available in a reset state the next time that a normal door profile is to be generated. And then, test 9 determines when the door reversal is complete (a positive, opening velocity) and clamps the velocity at zero in step 10. Following that, Verr is calculated as the dictated velocity Vt minus the actual door velocity in step 11.

In the subroutine of FIG. 14, if the door direction is closing but test 6 determines that no reversal is involved, then a test 12 determines if the closing velocity exceeds (is more negative than) V MAX, and if it is, the acceleration value is added to Vt for stepwise integration toward V MAX in step 13; this condition could occur when, as described with respect to the select acceleration and velocity subroutine of FIG. 12, a high force flag or safety nudge causes V MAX to be reduced to some fraction of normal. This process of causing the negative velocity to be rendered more positive (reduced) continues until a test 14 determines that the velocity is now more positive than V MAX, and it is thereafter clamped at V MAX in step 15. On the other hand, if test 12 determined that the velocity was less than V MAX when in the closing direction, then the velocity would be rendered more negative by one increment of the acceleration in a piecewise integration fashion in step 16, until such time as a test 17 determined that the velocity was more negative than V MAX (in the closing direction) at which time step 15 would clamp the velocity at V MAX.

In a similar fashion, if test 5 in FIG. 14 determines that the door is opening, then a test 18 determines if the velocity is greater than V MAX, and if it is, the velocity is reduced in step 19 (which may be necessary whenever high force or safety nudge reduces the maximum velocity in this cycle) so as to cause the dictated velocity to reduce itself to that commanded by stall or nudging. This would continue until the velocity is so reduced as determined in test 17, after which it would be clamped at V MAX by step 15.

But if step 18 in FIG. 14 determines that the velocity is not in excess of V MAX, then it may be incremented cycle after cycle in step 20, in each pass through test 18, until test 14 determines that it has exceeded V MAX, in which case step 15 will cause it to be clamped at V MAX. If a test 21 determines that this is not a position-controlled velocity profile, then Verr is generated as described hereinbefore in step 11. But if this is a position-controlled velocity profile, the absolute magnitude of Vt is compared with that of Vp, and once it equals Vp, the Vp profile will take over from Vt due to Vt being set equal to Vp in step 23. In this connection, it should be noted that Vt, for a position-controlled velocity, is simply some maximum velocity which is established for a position-controlled profile until such time as deceleration for reaching V BENCH at an intended position is achieved, by crossing Vp, as is described hereinbefore with respect to FIG. 4.

When Verr has been generated in step 11, the door control program operates through transfer point 24 so as to enter the dynamic compensation subroutine of FIGS. 15 and 16 through the entry point 1.

The dynamic compensation subroutine of FIG. 15 begins with a test 2 to determine whether integral gain should be provided to the velocity error which will be used to calculate the dictated door motor current. If a position-controlled velocity profile is being generated, the integral gain factor X is set to zero. But if a time-controlled velocity profile is involved, then a new value (Xm) of an integral gain factor, expressed as a magnitude of motor current, is generated in a step 4 as some integral gain constant (Kint) of the velocity error plus a previously calculated value for X (Xn). In order to be sure that the integral gain does not overshoot, which would provide a velocity error (not the basic velocity) with a sign opposite to the previous velocity error, a test 5 detects whether the sign of Verr has remained the same from the last cycle to the present cycle; if not, this means there is an overshoot and Verr is being overcompensated so that test 5 will be negative and the integral gain current factor (Xm) will be set to zero in step 3. If test 5 is affirmative, then a test 6 determines if the velocity error is within bounds of between minus and plus 0.6 centimeter per second. If it is not, the error is excessive and the integral gain is set to zero. But if Verr is very high, the dictated current will also be high, and will probably set the high force flag as described with respect to FIG. 16, below.

In FIG. 15, the next step 14 generates a calculated motor current (I CALC) as the summation of: the current generated with integral gain (Xm), plus a proportional gain constant (Kp) times the velocity error, plus some rounding that may be performed in a given embodiment of the invention, in dependence upon the particular processing system used and the conventions for the data which may be chosen. On the other hand, no rounding factor need be used; in cases where it is not demanded by the processor nor desired. In step 15, the value of Xm is saved as Zn for use in subsequent cycles in the integration process referred to hereinbefore.

In order to assist in stopping a closing door during a door reversal so that the door may thereafter be opened, a test 16 in FIG. 15 determines if there is a reverse door command and the open door command has not yet issued. If this is the case, the test is affirmative and a test 17 is made to see if this is the first pass through the subroutine since test 16 became affirmative. If it is the first pass, test 17 will be negative and cause steps 18-21 to be performed one time. Since step 21 will set the Kick flag, subsequent passage through test 17 will be affirmative and steps 18-21 will be bypassed. These steps provide an additional current component to the door motor, referred to herein as a reverse boost or Kick current, to assist in rapid stopping of the door when reversal has been commanded. The kick current is a filtered function of the door velocity at the time the reversal is commanded. The filter is a derivative lag filter, having the general frequency domain form of s/(s+t), where t is the time constant, here t=3. This may be expressed, for iterative digital approximation, as follows.

    I KICK=Kk(Vo-Vn)

where:

I KICK=the reverse boost, or Kick, current

Kk=the gain constant for Kick current

Vo=the door velocity at the start of a door reversal

Vn=a velocity component as a function of each pass of the program through the filter algorithm:

    Vn=(Vo)e.sup.-3T +(l-e.sup.-3T)Vm

wherein:

Vm=the value Vn of the preceeding cycle,

and T=time duration of each cycle.

This value of current component is intially high and drops off to a small amount in about 1/3 second. It is sufficient to overcome backlash in reversing the door against its inertia, to aid the dictated acceleration (the square of the initial velocity, Vo, over twice the stopping distance, step 26, FIG. 12) in stopping the door within the distance required by the elevator code, such as about 5 cm. In this embodiment, stopping within 3.75 cm of the reverse command is effected.

In FIG. 15, if test 16 indicates door reversal, but not the point thereof where the door has stopped or slowed sufficiently to be commanded open, a test 17 checks a "once-only" Kick flag. If test 17 is negative, steps 18-20 initialize the filter routine, and step 21 sets the Kick flag so these steps will be bypassed in subsequent iterations (test 17 will then be affirmative). Then steps 22 and 23 generate a value of Kick current for successive Vm's in each cycle, step 24 updates Vm, and the Kick current is added to dictated current in Step 25.

In FIG. 15, whenever door reversal is not being initiated, test 16 is negative, and step 26 resets the Kick flag. In each cycle other than during the initial phase of a door reversal, the dictated current in set equal to the calculated current by step 27.

The dynamic compensation subroutine of FIG. 15 passes through a transfer point 30 to reach the entry point 1 of the continuation of the dynamic compensation subroutine of FIG. 16.

In FIG. 16, test 2, if a door reversal is commanded and not prevented by nudge, when the door is closing, high currents can be expected, and the highforce portion of the subroutine is therefore bypassed by an affirmative result. Otherwise, in test 3, if there is a safety nudge, meaning that the operation control has determined that the door is probably blocked and should be nudged along, and if the door is closing (since an opening door need not be gently nudged), or if the high force flag is set, an affirmative result will lead to a step 4 which generates a limiting current equal to about 11.3 kilograms times the factor D which has been described hereinbefore, the limiting current being in the negative or closing direction. This is the same force as that of a closing stall force which is within the safety code limit. If the absolute value of dictated current exceeds some limiting value of current in test 5, then a test 6 determines the polarity and, dictated current is clamped to the limiting current in either step 7 or 8. The test accommodates current direction regardless of opening or closing direction, and even when overshoot in Verr causes current polarity to be opposite to door direction.

In FIG. 16, if test 3 is negative, meaning high force and nudging are not involved, then a test 9 determines whether the door velocity has reached maximum or not. If it has, there is no force required for acceleration and Verr should be small, so the door should be moved with relatively small currents compared to the currents required to achieve maximum velocity or to decelerate therefrom. Therefore, a test 10 determines if the absolute magnitude of the dictated current exceeds 2 amps. But if test 9 is negative, meaning that the door is accelerating or decelerating, then the absolute magnitude of dictated current is compared with 4 amps in a test 11. If excessive dictated current is determined in test 10 or test 11, then a test 12, comprising a high force timer, determines if this condition has existed for about 0.3 seconds. If it has not, it is assumed that this was caused by noise or some other transient condition, and no action is taken; but if it has, the high force flag is set in step 13, and the high force limited currents for 11.3 kgm, the same as a closing stall force, is generated and utilized as described with respect to steps 4-8, hereinbefore. Each time test 10 or 11 is negative, the high force timer (test 12) is reset in step 14. It is also reset whenever the high force current dictation is followed by stall.

In FIG. 16, a step 15 adds the compensation current to the dictated current, and tests 16 and 17 determine if the dictated motor current is more than +4 amps or less then -4 amps, and steps 18 and 19 clamp the current to +4 amps or -4 amps, respectively, if necessary. Thus, the compensated current dictated to the motor cannot exceed 4 amps. In the normal case where high force or nudge are not indicated, tests 2, 3, 10 or 11, or negative, so this routine only adds the compensation and tests for the 4 ampere (or other) limits, and outputs the dictated current by means of the subroutine 9a, FIG. 5, which is reached through a transfer point 20, FIG. 16. This completes the time or position-controlled velocity profile and current dictation to the door motor, so that the executive program is returned to, through a return point 16 (FIG. 5).

The present invention, providing a position-controlled door profile of the type described with respect to FIG. 4 hereinbefore, is brought into play in the embodiment herein during initiation (described with respect to FIG. 6 hereinbefore) when the door position cannot be known, and the status of the position transducer cannot be known. Calling for a position-controlled velocity profile (step 6, FIG. 6) in conjunction with commanding the door to close (step 7, FIG. 6) and forcing the transducer sum to equal zero (step 8, FIG. 6), which is an indication by the transducer that the door is fully closed (whether it is or not), forces the final closing velocity (which is extremely small, as indicated in FIG. 4 and FIG. 13), to control the initial motion (if any) of the door. This means that regardless of where the door is or what the position transducer is indicating, the door will be noved at a very low final velocity until it is closed, which is a prerequisite for leaving the initiation phase as described with respect to FIG. 6 hereinbefore.

The door velocity of the present invention can also be called for in other ways, as a consequence of door reversals due to manipulation of the door open button or door close button while on independent service, as in step 33 of FIG. 8, or as a consequence of a nudge command from the operation controller, door reversal, or an indication of high force, as in step 12 of FIG. 10.

The present invention may be used, if desired, as the sole mode of door control. On the other hand, it may be used in conjunction with a predominantly time-controlled door velocity profile, in a manner described and claimed in a commonly owned, copending U.S. patent application filed on even date herewith by Hmelovsky and Games, Ser. No. 107804 . In the event that the invention is to be used as the sole mode of door motion control, the steps for selecting this mode described immediately above would, of course, be redundant and therefore could be eliminated. When the present invention is used in conjunction with any other mode, selection of the mode must be provided for, such as the selection methods described immediately above.

The position-controlled velocity profile of the disclosed embodiment utilizes the opening target and closing target deviations from the fully open position and from the fully closed position (steps 5 and 6 of FIG. 13) as a convenience to tailor the profile to a particular elevator, in contrast with other particular elevators of the same model. However, this is equivalent to final target position which could be expressed as a single value, rather than as a basic value (open or closed) modified by a deviation. The particular velocities and distances are of course selectable to suit the needs of any elevator system in which the invention is to be employed, those illustrated herein being exemplary merely. Normally, all of the values used will vary from one installation to the next. The starting and final velocities can be zero, stall, or bench, as desired.

The invention may be implemented in the manner described herein, or may be implemented in a variety of other ways including utilization of dedicated digital hardware, substitution of analog components where felt desirable, and the like. Similarly, although the invention has been shown and described with respect to an exemplary embodiment thereof, it should be understood by those skilled in the art that the foregoing and various other changes, omissions and additions may be made therein and thereto, without departing from the spirit and the scope of the invention. 

We claim:
 1. An elevator for servicing a plurality of floor landings adjacent an elevator hoistway in a building, comprising:hall call means for registering requests for up or down service at each of said landings; a car movably disposed in said hoistway; car motion means for providing and arresting the motion of said car; car controller means for providing signals indicative of conditions of said car and of said car motion means, for exchanging signals with said car, for controlling said car motion means to cause said car to move in a selected up or down direction in said hoistway and to stop in response to said signals indicative of conditions of said car and of said car motion means and to signals received from said car; said car including a door for providing access to and from said car, a door motion means for opening and closing said door, switch means for registering calls for service by passengers in said car, and a cab controller for providing cab signals indicative of calls for service registered by said switch means, conditions of said door and the position of said car relative to any adjacent one of said landings, for exchanging signals with said car controller, and for controlling said door motion means in response to said cab signals and in response to signals received from said car controller; characterized by said cab controller comprising signal processing means for providing a first dictated door velocity signal as an increase at a predetermined acceleration from a small initial door velocity to a predetermined maximum velocity, for providing a second dictated velocity signal as a function of the difference between the present position of the door indicated by said signals indicative of conditions of said door and a predetermined target position for said door, for providing a selected dictated velocity signal as the lower valued one of said first dictated velocity signal and said second dictated velocity signal, and for providing a door-motion commanding signal to said door motion means as a function of the difference between said selected dictated velocity signal and the actual velocity of said door as indicated by said signals indicative of conditions of said door.
 2. An elevator according to claim 1 further characterized by said signal processing means comprising means operative in a series of cycles recurring many times per second for generating said first and second dictated door velocity signals and said selected dictated velocity signal once in each cycle, beginning in a cycle in which said actual door velocity is negligible, and continuing in each cycle until said target position is reached by said door.
 3. An elevator according to either of claims 1 or 2 further characterized by said signal processing means comprising means for providing said second dictated velocity signal as a constant times said difference between the present position of the door and the target position.
 4. In a method of controlling an elevator door, the steps of:providing an indication of a desired profile of door velocity as a function of the distance between the door and a desired final door position, up to a desired maximum door velocity; accelerating the door from a negligible velocity until it reaches substantially the velocity of said indication; and moving said door at substantially the velocity of said indication after the door is accelerated to substantially the velocity of said indication.
 5. A method according to claim 4 characterized by providing said desired profile as a linear function of said distance. 